5954
11242
Chci odstranit pobočku lokálně i vzdáleně.
Neúspěšné pokusy o odstranění vzdálené větve
$ git branch -d remotes / origin / bugfix
chyba: větev 'dálkové ovladače / původ / oprava chyby' nebyla nalezena.
$ git branch -d původ / oprava chyby
chyba: větev „původ / oprava chyby“ nebyla nalezena.
$ git branch -rd původ / oprava chyby
Odstraněný počátek vzdálené větve / oprava chyby (byla 2a14ef7).
$ git push
Vše aktuální
$ git pull
Z github.com:gituser/gitproject
* [nová větev] oprava chyby -> původ / oprava chyby
Již aktuální.
Co mám dělat jinak, abych úspěšně odstranil větev dálkových ovladačů / původu / opravy chyb lokálně i vzdáleně? 
1
2
další
Shrnutí
$ git push -d  
$ git branch -d 
Všimněte si, že ve většině případů je vzdálený název původ.
V takovém případě budete muset použít příkaz takhle.
$ git push -d původ 
Odstranit místní pobočku
Chcete-li odstranit místní pobočku, použijte jednu z následujících možností:
$ git větev -d název_větve
$ git větev -D název_větve
Poznámka: Možnost -d je alias pro --delete, který smaže větev pouze v případě, že již byla plně sloučena s její větví proti proudu. Můžete také použít -D, což je alias pro --delete --force, který odstraní větev „bez ohledu na její sloučený stav.“ [Zdroj: man git-branch]
Všimněte si také, že git branch -d branch_name selže, pokud jste aktuálně
ve větvi, kterou chcete odebrat. Zpráva začíná na
chyba: Nelze odstranit větev „název_větve“. Pokud ano, nejprve přepněte
do jiné pobočky, například: git checkout master.
Odstranit vzdálenou pobočku [Aktualizováno 8. září 2017]
Od verze Git v1.7.0 můžete vzdálenou větev odstranit pomocí
$ git push  - odstranit 
což by mohlo být snadněji zapamatovatelné než
$ git push : 
který byl přidán do Git v1.5.0 „pro smazání vzdálené větve nebo tagu.“
Počínaje verzí Git v2.8.0 můžete také použít git push s volbou -d jako alias pro --delete.
Verze Git, kterou jste nainstalovali, bude tedy určovat, zda potřebujete použít jednodušší nebo tvrdší syntaxi.
Odstranit vzdálenou pobočku [původní odpověď z 5. ledna 2010]
Z kapitoly 3 Pro Git od Scotta Chacona:
Odstranění vzdálených poboček
Předpokládejme, že jste skončili se vzdálenou pobočkou - řekněme, že vy a vaši spolupracovníci jste skončili s funkcí a sloučili jste ji do hlavní větve vzdáleného (nebo jakékoli větve, ve které je stabilní kódový řádek). Vzdálenou větev můžete odstranit pomocí poměrně tupé syntaxe git push [remotename]: [branch]. Pokud chcete odstranit větev opravy serveru ze serveru, spustíte následující:
$ git push origin: serverfix
Komu git@github.com: schacon / simplegit.git
- [smazáno] serverfix
Výložník. Žádné další pobočky na vašem serveru. Možná budete chtít tuto stránku naslouchat, protože budete potřebovat tento příkaz a pravděpodobně zapomenete na syntaxi. Způsob, jak si tento příkaz zapamatovat, je vyvolat syntaxi git push [remotename] [localbranch]: [remotebranch], kterou jsme přešli o něco dříve. Pokud vynecháte část [localbranch], pak v zásadě říkáte: „Neberte si nic na moji stranu a udělejte to [remotebranch].“
Vydal jsem git push origin: bugfix a fungovalo to nádherně. Scott Chacon měl pravdu - budu chtít psí ucho na tuto stránku (nebo prakticky psí ucho tím, že na to odpovím na Stack Overflow).
Pak byste to měli provést na jiných počítačích
# Načíst změny ze všech dálkových ovladačů a lokálně odstranit
# vzdálené smazané větve / značky atd
# --prune provede práci: -;
git fetch --all --prune
šířit změny.
|
Matoušova odpověď je skvělá pro odstranění vzdálených větví a také oceňuji vysvětlení, ale pro jednoduché rozlišení mezi těmito dvěma příkazy:
Odebrání místní pobočky z počítače:
git branch -d {the_local_branch} (použijte -D místo toho vynutit odstranění větve bez kontroly sloučeného stavu)
Odebrání vzdálené větve ze serveru:
git push origin --delete {the_remote_branch}
Odkaz: Git: Odstranění větve (místní nebo vzdálené)
|
Krátké odpovědi
Pokud chcete podrobnější vysvětlení následujících příkazů, podívejte se na dlouhé odpovědi v další části.
Odstranění vzdálené větve
git push origin --delete  # Git verze 1.7.0 nebo novější
git push origin -d  # Kratší verze (Git 1.7.0 nebo novější)
git push origin:  # Git verze starší než 1.7.0
Odstranění místní pobočky
git branch --delete 
git branch -d  # Kratší verze
git branch -D  # Vynutit odstranění nesloučených větví
Odstranění místní větve vzdáleného sledování
git branch --delete --remotes  / 
git branch -dr  /  # Kratší
git fetch  --prune # Odstranit několik zastaralých větví vzdáleného sledování
git fetch  -p # Kratší
Dlouhá odpověď: existují tři různé větve ke smazání!
Když se zabýváte mazáním poboček lokálně i vzdáleně, mějte na paměti, že se jedná o tři různé větve:
Místní pobočka X.
Vzdálená větev původu X.
Místní pobočka vzdáleného sledování původu / X, která sleduje vzdálenou větev X.
Původní použitý plakát:
git branch -rd původ / oprava chyby
Který odstranil pouze jeho místní větev / opravu chyby vzdáleného sledování, a nikoli skutečnou opravu chyby vzdálené větve v původu.
Chcete-li odstranit tuto skutečnou vzdálenou větev, potřebujete
git push origin - odstranit opravu chyby
Další detaily
Následující části popisují další podrobnosti, které je třeba vzít v úvahu při odstraňování vzdálených a vzdálených sledovacích větví.
Stisknutím tlačítka pro odstranění vzdálených větví odstraníte také větve vzdáleného sledování
Všimněte si, že odstranění vzdálené větve X z příkazového řádkupomocí git push také odstraníte místní pobočku vzdáleného sledování původu / X, takže není nutné ořezávat zastaralou větev vzdáleného sledování pomocí git fetch --prune nebo git fetch -p. Nebylo by to však na škodu, kdybys to stejně udělal.
Můžete ověřit, že pobočka vzdáleného sledování původu / X byla také odstraněna spuštěním následujícího:
# Zobrazit pouze větve vzdáleného sledování
git branch - remote
git větev -r
# Prohlížet jak přísně lokální, tak vzdálené pobočky
git větev - vše
git větev -a
Prořezávání zastaralé místní pobočky vzdáleného sledování původu / X
Pokud jste neodstranili vzdálenou větev X z příkazového řádku (jako výše), pak bude vaše místní úložiště stále obsahovat (nyní zastaralou) větev vzdáleného sledování původu / X. To se může stát, pokud jste odstranili vzdálenou větev například přímo přes webové rozhraní GitHubu.
Typickým způsobem, jak odstranit tyto zastaralé větve vzdáleného sledování (od verze Git 1.6.6), je jednoduše spustit git fetch s --prune nebo kratší -p. Toto odebere všechny zastaralé místní větve vzdáleného sledování pro všechny vzdálené větve, které již na dálkovém ovladači neexistují:
git fetch origin --prune
git načíst původ -p # Kratší
Zde je relevantní citát z poznámek k verzi 1.6.6 (důraz můj):
„git fetch“ se naučil - all and --multipleoptions, ze kterých se bude načítat
mnoho úložišť a --prune možnost odebrat vzdálené sledování
větve, které zatuchly. Díky tomu jsou „git remote update“ a „git
vzdálené prořezávání "méně nutné (neexistuje žádný plán na odebrání"
aktualizovat "ani" vzdálené prořezávání ").
Alternativa k výše uvedenému automatickému prořezávání zastaralých větví vzdáleného sledování
Alternativně můžete místo prořezávání zastaralých lokálních větví vzdáleného sledování pomocí git fetch -p vyhnout se další síťové operaci pouhým ručním odstraněním větve s příznaky --remote nebo -r:
git branch --delete --remotes origin / X
git branch -dr origin / X # Kratší
Viz také
git-branch (1) Ruční stránka.
git-fetch (1) Ruční stránka.
Pro Git § 3.5 Git Branching - vzdálené pobočky.
|
Kroky pro smazání větve:
Pro odstranění vzdálené větve:
git push origin --delete 
Pro odstranění místní pobočky máte tři způsoby:
1: git branch -D 
2: git branch --delete --force  # Stejné jako -D
3: git branch --delete  # Chyba při sloučení
Vysvětlete: Dobře, jen vysvětlete, co se tady děje!
Jednoduše proveďte git push origin --delete pro smazání pouze vaší vzdálené větve, na konec přidejte název větve a tím se zároveň smaže a odešle na vzdálené ...
Také git branch -D, která jednoduše smaže pouze lokální větev! ...
-D znamená --delete --force, která smaže větev, i když není sloučena (vynucené smazání), ale můžete také použít -d, což znamená --delete, které způsobí chybu příslušného stavu sloučení větve ...
Také vytvořím obrázek níže, abych ukázal kroky:
|
Ke smazání vzdálené větve můžete použít také následující
git push - odstranit původ serverfix
Což dělá totéž jako
git push origin: serverfix
ale může být snazší si to zapamatovat.
|
Tip: Když odstraníte větve pomocí
git branch -d  # Odstraní místní pobočku
nebo
git push origin:  # Odstraní vzdálenou větev
pouze odkazy jsou odstraněny. I když je větev na dálkovém ovladači skutečně odebrána, odkazy na ni stále existují v místních úložištích členů vašeho týmu. To znamená, že pro ostatní členy týmu jsou odstraněné větve stále viditelné, když dělají větev git -a.
Aby to mohli vyřešit, mohou členové vašeho týmu odstranit odstraněné větve
git vzdálené prořezávání <úložiště>
Toto je obvykle původ vzdáleného prořezávání git.
|
Chcete-li odstranit pobočku, nejdříve zaplaťte do pobočky jiné, než do větve, která má být odstraněna.
git checkout other_than_branch_to_be_deleted
Odstranění místní pobočky:
git branch -D branch_to_be_deleted
Odstranění vzdálené větve:
git push origin --odstranit větev_do_be_deleted
|
git branch -D 
větev git -D -r původ / 
git push origin: 
|
To je jednoduché: Stačí spustit následující příkaz:
Chcete-li odstranit pobočku Git lokálně i vzdáleně, nejprve smažte lokální větev pomocí tohoto příkazu:
git branch -d příklad
(Zde je příklad názvu pobočky.)
A poté odstraňte vzdálenou větev pomocí tohoto příkazu:
git push origin: příklad
|
Je to velmi jednoduché:
Chcete-li odstranit vzdálenou větev
git push -d origin 
Nebo
git push origin: 
Nucené odstranění místní pobočky
git branch -D 
|
Další přístup je:
git push - původ původu
UPOZORNĚNÍ: Tímto odstraníte všechny vzdálené větve, které lokálně neexistují. Nebo komplexněji
git push - zrcadlo
efektivně způsobí, že vzdálený repozitář bude vypadat jako lokální kopie repozitáře (lokální hlavičky, dálkové ovladače a tagy se zrcadlí na dálkovém ovládání).
|
V nastavení Bash používám následující:
alias git-shoot = "git pushorigin --delete "
Pak můžete volat:
git-shoot název pobočky
|
Smazat místně:
Chcete-li odstranit místní pobočku, můžete použít:
git branch -d 
Chcete-li větev násilně odstranit, použijte -D namísto -d.
git branch -D 
Vzdálené mazání:
Existují dvě možnosti:
git push origin: název pobočky
git push origin - odstranit název větve
Navrhoval bych použít druhý způsob, protože je intuitivnější.
|
Od ledna 2013 GitHub zahrnoval vedle každé větve na stránce „Pobočky“ tlačítko Odstranit větev.
Relevantní příspěvek na blogu: Vytváření a mazání větví
|
Chcete-li dokončit oba tyto kroky pomocí jediného příkazu, můžete pro něj vytvořit alias přidáním níže do souboru ~ / .gitconfig:
[alias]
rmbranch = "! f () {git branch -d $ {1} && git push origin --delete $ {1};}; f"
Případně to můžete přidat do své globální konfigurace z příkazového řádku pomocí
git config --global alias.rmbranch \
'! f () {git branch -d $ {1} && git push origin --delete $ {1}; };F'
POZNÁMKA: Pokud používáte -d (malá písmena d), větev bude odstraněna, pouze pokud byla sloučena. Chcete-li vynutit odstranění, budete muset použít -D (velká písmena D).
|
Chcete-li lokálně a vzdáleně odstranit svou pobočku
Pokladna do hlavní větve - hlavní pokladna git
Odstraňte vzdálenou větev - git push origin --delete 
Smažte svou místní pobočku - git branch --delete 
|
Můžete to udělat také pomocí git vzdáleného původu švestek
$ git vzdálený původ švestek
Původ prořezávání
URL: git@example.com/yourrepo.git
* [prořezávání] původu / některých větví
Prořezává a odstraňuje větve vzdáleného sledování ze seznamu git branch -r.
|
Kromě dalších odpovědí často používám nástroj git_remote_branch. Je to instalace navíc, ale získáte pohodlný způsob interakce se vzdálenými pobočkami. V tomto případě odstranit:
grb smazat větev
Zjistil jsem, že také často používám příkazy publikování a sledování.
|
Jednorázový příkaz k odstranění jak místního, tak vzdáleného:
D = název pobočky; větev git -D $ D; git push origin: $ D
Nebo přidejte alias níže do souboru ~ / .gitconfig. Použití: git kill branch-name
[alias]
kill = "! f () {git branch -D \" $ 1 \ "; git push origin --delete \" $ 1 \ ";}; f"
|
Mazání poboček
Předpokládejme, že naše práce na větvi „contact-form“ je hotová a již jsme ji integrovali do „master“. Protože ji již nepotřebujeme, můžeme ji (lokálně) smazat:
$ git branch -d kontaktní formulář
A pro odstranění vzdálené větve:
git push origin - odstranit kontaktní formulář
|
Odstranit vzdálenou větev
git push origin: 
Odstranit místní pobočku
git branch -D 
Odstranit kroky místní pobočky:
pokladna do jiné pobočky
smazat místní pobočku
|
Jednoduše řekněte:
git branch -d 
git push origin: 
|
git push origin --delete 
je snadněji zapamatovatelný než
git push origin: branchName
|
Nyní to můžete udělat s aplikací GitHub Desktop.
Po spuštění aplikace
Klikněte na projekt obsahující větev
Přepněte na větev, kterou chcete smazat
V nabídce „Pobočka“ vyberte „Zrušit publikování ...“, aby byla větev odstraněna ze serverů GitHub.
V nabídce „Pobočka“ vyberte „Odstranit“ název_větve „...“, aby byla pobočka odstraněna z vašeho místního počítače (AKA, na kterém právě pracujete)
|
Místní mazání - (normální)
git branch -d my_branch
Pokud vaše pobočka probíhá v procesu rebasingu / slučování a to nebylo provedeno správně, znamená to, že se zobrazí chyba, probíhá Rebase / Merge, takže v takovém případě nebudete moci pobočku smazat.
Takže buď potřebujete vyřešit rebasing / slučování. Jinak můžete vynutit mazání pomocí,
git branch -D my_branch
Odstranění ve vzdáleném:
git push - odstranit původ my_branch
Totéž můžete udělat pomocí:
git push origin: my_branch # Snadno si pamatujete, že oba udělají totéž.
Grafické znázornění:
|
To nebude fungovat, pokud máte značku se stejným názvem jako větev na dálkovém ovladači:
$ git push origin: název větve nebo značky
error: dst refspec branch-or-tag-name match more than one.
error: failed to push some refs to 'git@github.com: SomeName / some-repo.git'
V takovém případě musíte zadat, že chcete odstranit větev, nikoli značku:
git push origin: refs / heads / branch-or-tag-name
Podobně k odstranění značky namísto větve byste použili:
git push origin: refs / tags / branch-or-tag-name
|
Mnoho dalších odpovědí povede k chybám / varováním. Tento přístup je relativně bláznivý, i když možná stále budete potřebovat větev git -D branch_to_delete, pokud není plně sloučena například do some_other_branch.
git checkout some_other_branch
git push origin: branch_to_delete
git branch -d branch_to_delete
Vzdálené prořezávání není nutné, pokud jste odstranili vzdálenou větev. Používá se pouze k získání nejaktuálnějších dálkových ovladačů dostupných v úložišti, které sledujete. Pozoroval jsem, že git fetch přidá dálkové ovladače, ne je odstraní. Zde je příklad, kdy git remote prune origin skutečně něco udělá:
Uživatel Adělá výše uvedené kroky. Uživatel B by spustil následující příkazy, aby viděl nejaktuálnější vzdálené větve:
git načíst
git vzdálený původ švestek
git větev -r
|
Pro tuto odpověď mi přišlo googling, tak jsem zvolil podobný přístup k odpovědi, kterou dříve zveřejnil crizCraig.
Do svého profilu Bash jsem přidal následující:
funkce gitdelete () {
git push origin - odstranit $ 1
git větev -D $ 1
}
Pak pokaždé, když skončím s pobočkou (například sloučenou do hlavní), spustím v terminálu následující:
gitdelete my-branch-name
... který pak odstraní název mé větve z místa původu i lokálně.
|
Před provedením
git branch --delete 
ujistěte se, že nejprve určíte, jaký je přesný název vzdálené větve spuštěním:
git ls-remote
To vám řekne, co přesně zadat pro hodnotu . (větev rozlišuje velká a malá písmena!)
|
Použití:
git push origin: oprava chyby # Odstraní vzdálenou větev
git branch -d oprava chyby # Musí lokální pobočku odstranit ručně
Pokud jste si jisti, že jej chcete smazat, spusťte
git branch -D oprava chyby
Nyní vyčistit odstraněné vzdálené větve spustit
git vzdálený původ švestek
|
1
2
další
Vysoce aktivní otázka. Získejte 10 reputace, abyste mohli odpovědět na tuto otázku. Požadavek na reputaci pomáhá chránit tuto otázku před spamem a neodpovědností.
Toto není odpověď, kterou hledáte? Přečtěte si další otázky týkající se značek git version-control git-branch git-push git-remote